/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package umbook.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import umbook.entity.HibernateUtil;

import umbook.entity.Usuarios;

/**
 *
 * @author ing
 */
public class UsuarioDAO {

    Session session;

    public UsuarioDAO() {
        this.session = HibernateUtil.getSessionFactory().getCurrentSession();

    }

    public List<Usuarios> getUsuariosByID(int userId) {
        List<Usuarios> usuariosList = null;
        try {
            org.hibernate.Transaction tx = session.beginTransaction();
            Query q = session.createSQLQuery("SELECT * FROM Usuarios WHERE idUser =" + userId + "").addEntity(Usuarios.class);
            usuariosList = (List<Usuarios>) q.list();

        } catch (Exception e) {
            e.printStackTrace();
        }

        return usuariosList;
    }

    public Usuarios getUsuariosBymail(String mail) {
        Usuarios usuario = null;
        try {
            org.hibernate.Transaction tx = session.beginTransaction();
            Query q = session.createSQLQuery("SELECT * FROM Usuarios WHERE mailUser ='" + mail + "'").addEntity(Usuarios.class);
            usuario = (Usuarios) q.uniqueResult();

        } catch (Exception e) {
            e.printStackTrace();
        }

        return usuario;
    }

    public Usuarios validar(String mail, String passwd) {
        Usuarios usuarios = null;
        
        try {
            org.hibernate.Transaction tx = session.beginTransaction();
            Query q = session.createSQLQuery("SELECT * FROM Usuarios WHERE mailUser ='" + mail + "' AND passUser ='" + passwd + "'").addEntity(Usuarios.class);
            usuarios = (Usuarios)q.uniqueResult();

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("error en validar Usuario DAO o usuario no encontrado");
        }

        return usuarios;
    }

    public List<Usuarios> getUsuariosNombres(int startID, int endID) {
        List<Usuarios> usuariosList = null;
        try {
            org.hibernate.Transaction tx = session.beginTransaction();
            Query q = session.createSQLQuery("SELECT * FROM Usuarios where idUser between " + startID + " AND " + endID).addEntity(Usuarios.class);
           
            
            usuariosList = (List<Usuarios>) q.list();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return usuariosList;
    }

    public void insertarUsuario(Usuarios usuarioNuevo) {


        org.hibernate.Transaction tx = session.beginTransaction();
        session.save(usuarioNuevo);
        tx.commit();

    }
}
